Package gui

Source Code of gui.RiverScreen

package gui;

import game.World;
import game.River;
import exceptions.InsufficientFundsException;

import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.PaintEvent;
import org.eclipse.swt.events.PaintListener;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Canvas;
import org.eclipse.swt.widgets.Label;
import org.eclipse.wb.swt.SWTResourceManager;
import org.eclipse.swt.widgets.Combo;

/**
* River crossing choice/minigame
* @author Jaron
*
*/
public class RiverScreen extends Composite {
  private boolean done = false;
  private Canvas canvas;
  private Label lblCross;
  private Image image;
  private Combo crossMethods;
  private Button crossButton;
 
  /**
   * Create the composite.
   * @param parent
   * @param style
   */
  public RiverScreen(Composite parent, int style) {
    super(parent, style);
   
    createContents();
  }
 
  /**
   * check if user is finished with river screen
   * @return
   */
  public boolean isDone(){
    return done;
  }
 
  /**
   * reset done variable so user can re-enter river screen
   */
  public void resetDone(){
    done = false;
  }

  @Override
  protected void checkSubclass() {
    // Disable the check that prevents subclassing of SWT components
  }

  /**
   * creates controls for the composite
   */
  private void createContents(){
   
   
   
   
    lblCross = new Label(this, SWT.NONE);
    lblCross.setAlignment(SWT.CENTER);
    lblCross.setFont(SWTResourceManager.getFont("Tahoma", 13, SWT.NORMAL));
    lblCross.setBounds(12, 228, 430, 25);
    lblCross.setText("We need to cross the river! What we gonna do?!");
   
    crossMethods = new Combo(this, SWT.READ_ONLY);
    crossMethods.setItems(new String[] {"Take Ferry", "Ford", "Caulk"});
    crossMethods.setBounds(35, 264, 148, 21);
    crossMethods.setText("Take Ferry");
   
    crossButton = new Button(this, SWT.NONE);
    crossButton.addSelectionListener(new SelectionAdapter() {
      @Override
      public void widgetSelected(SelectionEvent arg0) {
       
        River river =  World.getMap().getLastRiver();
        if(river == null)
          river = World.getMap().getNextRiver(); //backup for the first river
       
        if(crossMethods.getText().equals("Take Ferry"))
        {
          try
          {
            river.takeFerry();
            done = true;
          }
          catch(InsufficientFundsException f)
          {
            lblCross.setText("We're too poor for that, pick another way across.");
          }
        }
        else if(crossMethods.getText().equals("Ford")){
          river.ford();
          done = true;
        }
        else{
          river.caulk();
          done = true;
        }
      }
    });
    crossButton.setBounds(209, 256, 231, 34);
    crossButton.setText("CROSS");
   
    canvas = new Canvas(this, SWT.NONE);
    canvas.setBounds(10, 10, 430, 216);
    image = new Image(getDisplay(),getClass().getResourceAsStream("images/river.jpg"));
   
    canvas.addPaintListener(new PaintListener() {
          public void paintControl(PaintEvent e) {
           e.gc.drawImage(image,0,0);
          }
      });
  }
}
TOP

Related Classes of gui.RiverScreen

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.